/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package co.gov.minagricultura;


import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.*;
import javax.xml.bind.annotation.XmlRootElement;
import org.eclipse.persistence.internal.jpa.EntityManagerImpl;
import wsDANE.SipsaPromediosMayoristasParcial;
 
/**
 *
 * @author leonardo.bravo
 */
@Entity
@Table(name = "SipsaDiarioConDescripcionesCambios", catalog = "AgronetSIPSA", schema = "dbo")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "SipsaDiarioConDescripcionesCambios.findAll", query = "SELECT s FROM SipsaDiarioConDescripcionesCambios s"),
    @NamedQuery(name = "SipsaDiarioConDescripcionesCambios.findByConsecutivoSipsaDiario", query = "SELECT s FROM SipsaDiarioConDescripcionesCambios s WHERE s.consecutivoSipsaDiario = :consecutivoSipsaDiario"),
    @NamedQuery(name = "SipsaDiarioConDescripcionesCambios.findByCodProductoSipsaDiario", query = "SELECT s FROM SipsaDiarioConDescripcionesCambios s WHERE s.codProductoSipsaDiario = :codProductoSipsaDiario"),
    @NamedQuery(name = "SipsaDiarioConDescripcionesCambios.findByCodMercadoSipsaDiario", query = "SELECT s FROM SipsaDiarioConDescripcionesCambios s WHERE s.codMercadoSipsaDiario = :codMercadoSipsaDiario"),
    @NamedQuery(name = "SipsaDiarioConDescripcionesCambios.findByCodUnidadSipsaDiario", query = "SELECT s FROM SipsaDiarioConDescripcionesCambios s WHERE s.codUnidadSipsaDiario = :codUnidadSipsaDiario"),
    @NamedQuery(name = "SipsaDiarioConDescripcionesCambios.findByFechaSipsaDiario", query = "SELECT s FROM SipsaDiarioConDescripcionesCambios s WHERE s.fechaSipsaDiario = :fechaSipsaDiario"),
    @NamedQuery(name = "SipsaDiarioConDescripcionesCambios.findByPrecioMinimoDiarioSipsaDiario", query = "SELECT s FROM SipsaDiarioConDescripcionesCambios s WHERE s.precioMinimoDiarioSipsaDiario = :precioMinimoDiarioSipsaDiario"),
    @NamedQuery(name = "SipsaDiarioConDescripcionesCambios.findByPrecioMaximoDiarioSipsaDiario", query = "SELECT s FROM SipsaDiarioConDescripcionesCambios s WHERE s.precioMaximoDiarioSipsaDiario = :precioMaximoDiarioSipsaDiario"),
    @NamedQuery(name = "SipsaDiarioConDescripcionesCambios.findByPrecioPromedioDiarioSipsaDiario", query = "SELECT s FROM SipsaDiarioConDescripcionesCambios s WHERE s.precioPromedioDiarioSipsaDiario = :precioPromedioDiarioSipsaDiario"),
    @NamedQuery(name = "SipsaDiarioConDescripcionesCambios.findByCodigoProductoProductosDiarios", query = "SELECT s FROM SipsaDiarioConDescripcionesCambios s WHERE s.codigoProductoProductosDiarios = :codigoProductoProductosDiarios"),
    @NamedQuery(name = "SipsaDiarioConDescripcionesCambios.findByNombreProductoProductosDiarios", query = "SELECT s FROM SipsaDiarioConDescripcionesCambios s WHERE s.nombreProductoProductosDiarios = :nombreProductoProductosDiarios"),
    @NamedQuery(name = "SipsaDiarioConDescripcionesCambios.findByCodProductoGralProductosDiarios", query = "SELECT s FROM SipsaDiarioConDescripcionesCambios s WHERE s.codProductoGralProductosDiarios = :codProductoGralProductosDiarios"),
    //Encuentra el valor maximo de la llave primaria consecutivo
    @NamedQuery(name = "SipsaDiarioConDescripcionesCambios.findMaxConsecutivo", query = "SELECT Max(s.consecutivoSipsaDiario) FROM SipsaDiarioConDescripcionesCambios s ")})


public class SipsaDiarioConDescripcionesCambios implements Serializable {
    @Basic(optional = false)
    @Column(name = "fecha_SipsaDiario")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaSipsaDiario;
    private static final long serialVersionUID = 1L;
   
    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "consecutivo_SipsaDiario",unique = true, nullable = false,updatable=true)
    private Long consecutivoSipsaDiario;
    @Basic(optional = false)
    @Column(name = "codProducto_SipsaDiario")
    private long codProductoSipsaDiario;
    @Basic(optional = false)
    @Column(name = "codMercado_SipsaDiario")
    private int codMercadoSipsaDiario;
    @Basic(optional = false)
    @Column(name = "codUnidad_SipsaDiario")
    private String codUnidadSipsaDiario;
    // @Max(value=?)  @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation
    @Column(name = "precioMinimoDiario_SipsaDiario")
    private BigDecimal precioMinimoDiarioSipsaDiario;
    @Column(name = "precioMaximoDiario_SipsaDiario")
    private BigDecimal precioMaximoDiarioSipsaDiario;
    @Column(name = "precioPromedioDiario_SipsaDiario")
    private BigDecimal precioPromedioDiarioSipsaDiario;
    @Basic(optional = false)
    @Column(name = "codigoProducto")
    private long codigoProductoProductosDiarios;
    @Column(name = "nombreProducto")
    private String nombreProductoProductosDiarios;
    @Column(name = "codProductoGral")
    private String codProductoGralProductosDiarios;
    @Column(name = "nombremercado")
    private String nombreMercado;
    
    public static long getUltimoConsecutivoEnBaseSipsa(EntityManagerImpl entityManager, SipsaPromediosMayoristasParcial spm) {
       long idConsecutivoUltimo = (Long) entityManager.createNamedQuery("SipsaDiarioConDescripcionesCambios.findMaxConsecutivo").getSingleResult();
        return idConsecutivoUltimo;
    }
    public SipsaDiarioConDescripcionesCambios() {
    }

    public SipsaDiarioConDescripcionesCambios(Long consecutivoSipsaDiario) {
        this.consecutivoSipsaDiario = consecutivoSipsaDiario;
    }

    public SipsaDiarioConDescripcionesCambios( long codProductoSipsaDiario, int codMercadoSipsaDiario, Date fechaSipsaDiario, long codigoProductoProductosDiarios ) {
        
        this.codProductoSipsaDiario = codProductoSipsaDiario;
        this.codMercadoSipsaDiario = codMercadoSipsaDiario;
        
        this.fechaSipsaDiario = fechaSipsaDiario;
        this.codigoProductoProductosDiarios = codigoProductoProductosDiarios;
        
        
    }

    public Long getConsecutivoSipsaDiario() {
        
        return consecutivoSipsaDiario;
    }

    public void setConsecutivoSipsaDiario(Long consecutivoSipsaDiario) {
        this.consecutivoSipsaDiario = consecutivoSipsaDiario;
    }

    public long getCodProductoSipsaDiario() {
        return codProductoSipsaDiario;
    }

    public void setCodProductoSipsaDiario(long codProductoSipsaDiario) {
        this.codProductoSipsaDiario = codProductoSipsaDiario;
    }

    public int getCodMercadoSipsaDiario() {
        return codMercadoSipsaDiario;
    }

    public void setCodMercadoSipsaDiario(int codMercadoSipsaDiario) {
        this.codMercadoSipsaDiario = codMercadoSipsaDiario;
    }

    public String getCodUnidadSipsaDiario() {
        return codUnidadSipsaDiario;
    }

    public void setCodUnidadSipsaDiario(String codUnidadSipsaDiario) {
        this.codUnidadSipsaDiario = codUnidadSipsaDiario;
    }

    public Date getFechaSipsaDiario() {
        return fechaSipsaDiario;
    }

    public void setFechaSipsaDiario(Date fechaSipsaDiario) {
        this.fechaSipsaDiario = fechaSipsaDiario;
    }

    public BigDecimal getPrecioMinimoDiarioSipsaDiario() {
        return precioMinimoDiarioSipsaDiario;
    }

    public void setPrecioMinimoDiarioSipsaDiario(BigDecimal precioMinimoDiarioSipsaDiario) {
        this.precioMinimoDiarioSipsaDiario = precioMinimoDiarioSipsaDiario;
    }

    public BigDecimal getPrecioMaximoDiarioSipsaDiario() {
        return precioMaximoDiarioSipsaDiario;
    }

    public void setPrecioMaximoDiarioSipsaDiario(BigDecimal precioMaximoDiarioSipsaDiario) {
        this.precioMaximoDiarioSipsaDiario = precioMaximoDiarioSipsaDiario;
    }

    public BigDecimal getPrecioPromedioDiarioSipsaDiario() {
        return precioPromedioDiarioSipsaDiario;
    }

    public void setPrecioPromedioDiarioSipsaDiario(BigDecimal precioPromedioDiarioSipsaDiario) {
        this.precioPromedioDiarioSipsaDiario = precioPromedioDiarioSipsaDiario;
    }

    public long getCodigoProductoProductosDiarios() {
        return codigoProductoProductosDiarios;
    }

    public void setCodigoProductoProductosDiarios(long codigoProductoProductosDiarios) {
        this.codigoProductoProductosDiarios = codigoProductoProductosDiarios;
    }

    public String getNombreProductoProductosDiarios() {
        return nombreProductoProductosDiarios;
    }

    public void setNombreProductoProductosDiarios(String nombreProductoProductosDiarios) {
        this.nombreProductoProductosDiarios = nombreProductoProductosDiarios;
    }

    public String getNombreMercado() {
        return nombreMercado;
    }

    public void setNombreMercado(String nombreMercado) {
        this.nombreMercado = nombreMercado;
    }

    
    
    public String getCodProductoGralProductosDiarios() {
        return codProductoGralProductosDiarios;
    }

    public void setCodProductoGralProductosDiarios(String codProductoGralProductosDiarios) {
        this.codProductoGralProductosDiarios = codProductoGralProductosDiarios;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (consecutivoSipsaDiario != null ? consecutivoSipsaDiario.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof SipsaDiarioConDescripcionesCambios)) {
            return false;
        }
        SipsaDiarioConDescripcionesCambios other = (SipsaDiarioConDescripcionesCambios) object;
        if ((this.consecutivoSipsaDiario == null && other.consecutivoSipsaDiario != null) || (this.consecutivoSipsaDiario != null && !this.consecutivoSipsaDiario.equals(other.consecutivoSipsaDiario))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "co.gov.minagricultura.SipsaDiarioConDescripcionesCambios[ consecutivoSipsaDiario=" + consecutivoSipsaDiario + " ]";
    }

  
    
}
